var util = require('util');
var requestDomain = util.config('requestDomain');
var unreadMsgsTemp;

/**
 * 检查登录状态函数
 */

function checkLogin(callback) {
    //弹出检测登录状态加载框
    wx.showToast({
        title: '检测登录状态',
        icon: 'loading',
        duration: 10000,
        mask: true,
        success: function() {
        //弹框成功
        console.log('调用检测登录状态框成功');
        //首先使用官方的的checkSession检查微信端的的sessionKey是否过期
          //从本地存储取出3rdSession
          var _3rdSession = wx.getStorageSync('_3rdSession');
          console.log('3rdSession读取成功:' + _3rdSession);
          console.log('发起检测登录状态请求');
          //发起检测服务器端登录状态请求，附带3rdSession
          wx.request({
              url: requestDomain + 'user/checkLogin',
              data: {
                storeId: util.globalData('storeId'),
                _3rdSession: _3rdSession,
                identity: 'user'
              },
              dataType: 'json',
              method: 'POST',
              success: function(result){
                console.log('请求完成，结果为' + result);
                console.log(result);
                //隐藏检测登录状态加载框
                wx.hideToast();
                //检查返回数据的的errCode是否为为0
                if(util.checkSuccess(result)) {
                    //在服务器上已在登录状态
                    console.log('用户已在登录状态');
                    //回调成功
                    callback.success(result.data.data);
                }
                else if(util.checkSuccess(result, ['-0004'])) {
                    //在服务器上未在登录状态
                    console.log('用户未登录');
                    //回调失败
                    callback.fail();
                }
                else {
                    //返回的错误
                    console.log('获取状态出错：' + result.data.errCode);
                    util.showError('获取状态出错', '从服务器获取登录状态出错:' + result.data.errMsg, result.data.errCode);
                    callback.err();
                }
              },
              fail: function() {
                //检测登录状态请求出错
                console.log('请求失败，结果为' + result);
                util.showError('请求失败', '请求检测登录状态失败');
                wx.hideToast();
                callback.err();
              }
          });
        },
        fail: function() {
          //调用检测登录状态加载框失败
          console.log('调用检测登录状态框失败');
          util.showError('调用失败', '调用小程序提示框失败');
          callback.err();
        }
    });
}

/**
 * 登录函数
 */

function login(callback) {
    //用户点击确定执行微信登录
    console.log('用户选择确定登录');
    //显示登录中的提示框
    wx.showToast({
      title: '登录中',
      icon: 'loading',
      duration: 10000,
      mask: true,
      success: function() {
        console.log('调用登录中状态框成功');
        
      },
      fail: function() {
        //调用检测登录状态加载框失败
        console.log('调用检测登录状态框失败');
        util.showError('调用失败', '调用小程序登录中状态框失败');
        //回调失败
        callback.fail();
      }
    });
}

module.exports = {
    checkLogin: checkLogin,
    login: login
}